package com.axzhengxin.platform.business.mapper;

import com.axzhengxin.platform.business.domain.BizApplyInfo;
import com.axzhengxin.platform.business.domain.BizLoanInfo;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 放款信息Mapper接口
 *
 * @author axzhengxin
 * @date 2021-02-24
 */
public interface BizLoanInfoMapper {
    /**
     * 查询放款信息
     *
     * @param loanId 放款信息ID
     * @return 放款信息
     */
    BizLoanInfo selectBizLoanInfoById(String loanId);

    /**
     * 查询放款信息列表
     *
     * @param bizLoanInfo 放款信息
     * @return 放款信息集合
     */
    List<BizLoanInfo> selectBizLoanInfoList(BizLoanInfo bizLoanInfo);

    /**
     * 新增放款信息
     *
     * @param bizLoanInfo 放款信息
     * @return 结果
     */
    int insertBizLoanInfo(BizLoanInfo bizLoanInfo);

    /**
     * 修改放款信息
     *
     * @param bizLoanInfo 放款信息
     * @return 结果
     */
    int updateBizLoanInfo(BizLoanInfo bizLoanInfo);

    /**
     * 删除放款信息
     *
     * @param loanId 放款信息ID
     * @return 结果
     */
    int deleteBizLoanInfoById(String loanId);

    /**
     * 批量删除放款信息
     *
     * @param loanIds 需要删除的数据ID
     * @return 结果
     */
    int deleteBizLoanInfoByIds(String[] loanIds);

    /**
     *
     * @param applyId
     * @return
     */
    BigDecimal selectSumAmountByApplyId(@Param(value = "applyId") String applyId, @Param(value = "approveId") String approveId);

    /**
     * 获取放款信息 仅展示当前用户 部门下的
     * @param reqId 需求ID
     * @param deptId 部门ID
     * @return 集合
     */
    List<BizLoanInfo> bizLoanInfoList(@Param( value = "reqId") String reqId,@Param( value = "deptId") String deptId);

    /**
     * 获取放款集合
     * @param searchApply 取ReqId
     * @return
     */
    List<BizLoanInfo> selectBizLoanInfoByReqId(BizApplyInfo searchApply);

    /**
     * 确认放款金额是否合适
     * @param map
     * @return
     */
    Map checkLoanAmountByApproveId(Map<String, Object> map);
}
